import {
  Inject,
  Provide,
  // Post,
  // Get,
  // Put,
  // Del,
  // Query,
  // Body,
} from '@midwayjs/core';
import { Context } from '@midwayjs/koa';
import { Result, IResult } from '../utils';
import { BaseService } from '../service/base';

@Provide()
export class BaseController {
  @Inject()
  ctx: Context;

  @Inject()
  service: BaseService;

  success<T>(data?: T, option: IResult<T> = {}): IResult<T> {
    return Result.success<T>({ data, ...option });
  }

  error(message?, option: IResult = {}) {
    return Result.error({ message, ...option });
  }

  // @Post('/add')
  // add(@Body() body) {
  //   return this.service.add(body);
  // }

  // @Put('/update')
  // update(@Body() body) {
  //   return this.service.update(body);
  // }

  // @Del('/delete')
  // delete(@Body() body) {
  //   return this.service.delete(body);
  // }

  // @Get('/info')
  // info(@Query() query) {
  //   return this.service.info(query);
  // }

  // @Get('/list')
  // list(@Query() query) {
  //   return this.service.list(query);
  // }
}
